import axios,{AxiosRequestConfig, AxiosResponse} from "axios";

const baseURL = 'http://127.0.0.1:8000/api/v1'

const request = (config: AxiosRequestConfig) => {
    const instance = axios.create({
        baseURL,
        timeout: 5000
    })

    // 请求拦截器
    instance.interceptors.request.use((config: AxiosRequestConfig) => {
        const token = localStorage.getItem('token')
        // 如果存在token值，为请求头添加token令牌
        if(token){
            config.headers['Authorization'] = token
        }
        return config
    })

    // 响应拦截器
    instance.interceptors.response.use((result: AxiosResponse) => {
        //显示状态码401则表示token已过期，则清除该token值
        if(result.data.code === 401){
            localStorage.removeItem('token')
        }
        // 直接返回请求结果的data部分
        return result.data
    })

    return instance(config)
}

export default request